/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cc.altius.service;

import cc.altius.model.*;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 *
 * @author sagar
 */
public interface CustomerService {

    public int addCustomer(Customer customer);

    //public int addCustomer(Customer customer, String recordingId, int hospitalId, int appSpecialistId);
    public List<Map<String, Object>> searchCustomer(String mrNo, String phone, String customerName, String empId1);

    public List<PaymentType> getPaymentTypeList();

    public List<Relation> getRelationList();

    public List<CallType> getCallTypeList();

    public List<Disposition> getDispositionList();

    public List<Disposition> getDispositionList(int callTypeId);

    public Customer getCustomer(String phone, String mrNo, String customerName);

    public void updateCustomer(Customer customer, Date transFollowupDate, String transNotes, String transCheifComplaint, int callTypeId, int dispositionId, String area, String recordingId, int hospitalId, int appSpecialistId);

    public List<TransCustomer> getCustomerTransDetails(int customerId);

    public List<Map<String, Object>> getFollowupList(int dispositionId);

    public Customer getCustomerDetails(int customerId);

    public List<Illness> getIllnessList();

    public List<Map<String, Object>> getIllnessListByCustomerId(int customerId);

    public List<Map<String, Object>> getIllnessListForLeftTable(int customerId);

    public int addIllness(int customerId, String selectedIllnessIds);

    public void updateIllness(int customerId, String selectedIllnessIds);

    public Customer getCustomerListOnEmployeeId(int customerId);

    // FOR REPORTS 
    public List<Map<String, Object>> getCallLogReport(String startDate, String stopDate, int callTypeId, int dispositionId, int doctorId, int userId);

    // FOR ONLINE REGISTRATION FORM
    public void updateCustomerForOnlineRegistration(Customer customer);

    public List<Event> getEventList(int corporateId);

    public List<CorporateCustomer> getCorporateCustomerList(String customerName, int corporateId);

    public CorporateCustomerEvent getCorporateCustomerEventData(int coCustomerId);

    public int editCorporateCustomerEventData(CorporateCustomerEvent coCustomerEvents);

    public List<Map<String, Object>> getCorporateCustomerExcelData(String customerName, int corporateId);

    public Map<String, Object> getCorporateCustomer(FileUpload fileUpload);

    public int saveCorporateCustomerData(List<CorporateCustomer> corporateCustommerList, List<CorporateCustomerEvent> corporateCustommerEventList);

    public boolean updateEvent(int corporateId, int eventId, String eventDate, int eventStatus);

    public boolean editEvent(Event event);

    public int addCorporate(PaymentType corporate);

    public PaymentType getCorporateById(int corporateId);

    public int editCorporate(PaymentType corporate);

    public int addCorporateCustomer(CorporateCustomer corporateCustomer, CorporateCustomerEvent customerEvent);

    public CorporateCustomer getCorporateCustomerById(int corporateCustomerId);

    public int editCorporateCustomer(CorporateCustomer corporateCustomer);

    public List<EventStatus> getEventStatusList();
}
